package com.jjh.users.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.jjh.common.util.PageInfoUtil;
import com.jjh.users.pojo.ACourse;
import com.jjh.users.pojo.ASelectCourse;
import com.jjh.users.pojo.AStudent;
import com.jjh.users.pojo.AStudentFav;
import com.jjh.users.pojo.ATeacher;

/**
 * 所有dao的service
 * @author MyJJh
 *
 */
public interface IUsersService
{
	
	/*========学生管理开始===========*/
	/**
	 * 保存一条学生 
	 * @param Student 存储的对象
	 * @return 对数据影响的条数
	 */
	JSONObject saveOneStudentService(AStudent student);
	
	/**
	 * 更新一条学生
	 * @param Student 更新的对象
	 * @return 对数据库影响的条数
	 */
	JSONObject updateOneStudentService(AStudent student);
	
	/**
	 * 更新一条学生
	 * @param student
	 * @param paramMap  上传头像的条件
	 * @return
	 */
	JSONObject updateOneStudentService(AStudent student , Map<String,Object> paramMap);
	
	/**
	 * 删除多条学生
	 * @param condMap 删除的条件
	 * @return 对数据影响的条数
	 */
	JSONObject deleteBatchStudentServcie(Map<String,Object> condMap);
	
	/**
	 * 查找一条学生
	 * @param condMap 查找的条件
	 * @return 返回查找的一条学生
	 */
	AStudent findOneStudentService(Map<String,Object> condMap);
	
	/**
	 * 查找多条学生
	 * @param condMap 查找的条件
	 * @return 返回查找的多条学生
	 */
	List<AStudent> findCondListStudentService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*========学生管理结束===========*/
	
	/*========老师管理开始===========*/
	/**
	 * 保存一条老师 
	 * @param Student 存储的对象
	 * @return 对数据影响的条数
	 */
	JSONObject saveOneTeacherService(ATeacher teacher);
	
	/**
	 * 更新一条老师
	 * @param Student 更新的对象
	 * @return 对数据库影响的条数
	 */
	JSONObject updateOneTeacherService(ATeacher teacher);
	
	/**
	 * 删除多条老师
	 * @param condMap 删除的条件
	 * @return 对数据影响的条数
	 */
	JSONObject deleteBatchTeacherServcie(Map<String,Object> condMap);
	
	/**
	 * 查找一条老师
	 * @param condMap 查找的条件
	 * @return 返回查找的一条老师
	 */
	ATeacher findOneTeacherService(Map<String,Object> condMap);
	
	/**
	 * 查找多条老师
	 * @param condMap 查找的条件
	 * @return 返回查找的多条老师
	 */
	List<ATeacher> findCondListTeacherService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*========老师管理结束===========*/
	
	/*========选课管理开始===========*/
	/**
	 * 保存一条选课 
	 * @param Student 存储的对象
	 * @return 对数据影响的条数
	 */
	JSONObject saveOneSelectCourseService(ASelectCourse selectCourse);
	
	/**
	 * 更新一条选课
	 * @param Student 更新的对象
	 * @return 对数据库影响的条数
	 */
	JSONObject updateOneSelectCourseService(ASelectCourse selectCourse);
	
	/**
	 * 删除多条选课
	 * @param condMap 删除的条件
	 * @return 对数据影响的条数
	 */
	JSONObject deleteBatchSelectCourseServcie(Map<String,Object> condMap);
	
	/**
	 * 查找一条选课
	 * @param condMap 查找的条件
	 * @return 返回查找的一条选课
	 */
	ASelectCourse findOneSelectCourseService(Map<String,Object> condMap);
	
	/**
	 * 查找多条选课
	 * @param condMap 查找的条件
	 * @return 返回查找的多条选课
	 */
	List<ASelectCourse> findCondListSelectCourseService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*========选课管理结束===========*/
	
	/*========课程管理开始===========*/
	/**
	 * 保存一条课程 
	 * @param Course 存储的对象
	 * @return 对数据影响的条数
	 */
	JSONObject saveOneCourseService(ACourse course);
	
	/**
	 * 更新一条课程
	 * @param Course 更新的对象
	 * @return 对数据库影响的条数
	 */
	JSONObject updateOneCourseService(ACourse course);
	
	/**
	 * 删除多条课程
	 * @param condMap 删除的条件
	 * @return 对数据影响的条数
	 */
	JSONObject deleteBatchCourseServcie(Map<String,Object> condMap);
	
	/**
	 * 查找一条课程
	 * @param condMap 查找的条件
	 * @return 返回查找的一条课程
	 */
	ACourse findOneCourseService(Map<String,Object> condMap);
	
	/**
	 * 查找多条课程
	 * @param condMap 查找的条件
	 * @return 返回查找的多条课程
	 */
	List<ACourse> findCondListCourseService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*========课程管理结束===========*/
	
	/*========学生收藏管理开始===========*/
	/**
	 * 保存一条学生收藏 
	 * @param StudentFav 存储的对象
	 * @return 对数据影响的条数
	 */
	JSONObject saveOneStudentFavService(AStudentFav studentFav);
	
	/**
	 * 更新一条学生收藏
	 * @param StudentFav 更新的对象
	 * @return 对数据库影响的条数
	 */
	JSONObject updateOneStudentFavService(AStudentFav studentFav);
	
	/**
	 * 删除多条学生收藏
	 * @param condMap 删除的条件
	 * @return 对数据影响的条数
	 */
	JSONObject deleteBatchStudentFavServcie(Map<String,Object> condMap);
	
	/**
	 * 查找一条学生收藏
	 * @param condMap 查找的条件
	 * @return 返回查找的一条学生收藏
	 */
	AStudentFav findOneStudentFavService(Map<String,Object> condMap);
	
	/**
	 * 查找多条学生收藏
	 * @param condMap 查找的条件
	 * @return 返回查找的多条学生收藏
	 */
	List<AStudentFav> findCondListStudentFavService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*========学生收藏管理结束===========*/
}
